package cn.fuxi2022.accounts.commonMessage.service;

import java.util.Map;

public interface WeChatCommonMessageService {

    /**
     * 在微信公众平台上 开发者填写的 token 参数
     */
    String token = "smart_group";

    /**
     * 验证消息的确来自微信服务器
     *
     * @param signature 微信加密签名，signature结合了开发者填写的 token 参数和请求中的 timestamp 参数、nonce参数。
     * @param timestamp 时间戳
     * @param nonce     随机数
     * @return true:来自微信服务器 false:不是来自微信服务器
     */
    boolean verifyToken(String signature, String timestamp, String nonce);

    /**
     * 接收普通消息/接收事件推送 ---> 被动回复用户消息
     * <p>
     * 当用户在微信公众号触发特定事件
     * 微信将触发的事件发送过来，进行业务处理后，进行消息回复
     *
     * @param map 解析微信推送的 XML 数据包后的map
     * @return success 或 回复消息
     */
    String receiveMessage(Map<String, String> map);
}
